#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

int main()
{
    umask(0);

   // int fd=open("log.txt",O_CREAT|O_WRONLY|O_TRUNC,0666);

   // dup2(fd,1);
   // close(fd);

   // printf("gello bit\n");

   // printf("gello bit\n");
   // printf("gello bit\n");
   // fprintf(stdout,"hello world\n");
   // fprintf(stdout,"hello world\n");
   // fprintf(stdout,"hello world\n");


    int fd=open("log.txt",O_RDONLY);
    if(fd<0)exit(1);

    dup2(fd,0);

    while(1)
    {
        char buffer[64];

        if(!fgets(buffer,sizeof(buffer),stdin))
        {
            break;
        }

        printf("%s",buffer);
    }

    //int fd=open("log.txt",O_CREAT|O_WRONLY|O_TRUNC,0666);

   // int fd=open("log.txt",O_CREAT|O_WRONLY|O_APPEND,0666);
    //  int fd=open("log.txt",O_RDONLY);
   
    //if(fd<0)
    //{
    //    perror("open");
    //    return 1;
    //}

    //printf("fd: %d\n",fd);

    //while(1)
    //{
    //    char buf[64];
    //    int s=read(fd,buf,sizeof(buf)-1);

    //    if(s>0)
    //    {
    //        buf[s]=0;
    //        printf("%s",buf);
    //    }
    //    else if(s==0)
    //    {
    //        break;
    //    }
    //}

    //const char* msg="hello bit\n";
    //int cnt=5;

    //const char* msg="abcd\n";

    //write(fd,msg,strlen(msg));

   // while(cnt)
   // {
   //     write(fd,msg,strlen(msg));
   //     cnt--;
   // }
   //
   //int a=1234567;

   // while(cnt)
   // {
   //     char buf[128];
   //     snprintf(buf,sizeof(buf),"%d",a);
   //     write(fd,buf,strlen(buf));
   //     cnt--;
   // }

    close(fd);

    return 0;
}
